require "Common.ParticlesData"
ParticleCon = class("ParticleCon")
--特效实例的作用代码

--!!!!!!使用前请先使用unity中tools组件中的Build ParticlesLuaData 插件生成特效数据列表

--1.定义最长时间，找到所有的粒子特效组件
--2.遍历组件列表，确定最长时间。开始循环工作

function ParticleCon:ctor(PrefabPath, Duration)
    self.PrefabPath = PrefabPath
    self:SetDuration(Duration)
end

function ParticleCon:Awake(obj)
    self.obj = obj
end

function ParticleCon:SetDuration(Duration)
    self.Duration = Duration
    self.time = self.Duration~=nil and self.Duration or PARTICLE_DATA[self.PrefabPath].duration
end

function ParticleCon:Return()
    ParticleManager.Return(self.obj,self.PrefabPath)
end

--计时器
--3.根据最长时间定时，在时间归零后，对对象进行回收操作
function ParticleCon:OnShow()
    if self.time~=-1 then
        TIMERM.Interval(self.Return,self.obj,self.time,1)
    end
end
function ParticleCon:OnHide()
    TIMERM.Kill(self.Return,self.obj)
end
--若是直接删除对象。则销毁对象的定时器对象
function ParticleCon:OnDestroy()
    TIMERM.Kill(self.Return,self.obj)
end